package com.lincoln.jenkins.test.game;

import com.lincoln.jenkins.test.Config;
import lombok.Data;

import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 游戏主体
 */
@Data
public class Game {
    public static enum GameStatus {
        /**
         * 等待开始
         */
        WAIT,
        /**
         * 等待全部描述完毕
         */
        WAIT_IN,
        /**
         * 等待投票结束
         */
        WAIT_END,
        /**
         * 公布结果
         */
        END;
    }

    /**
     * 该游戏主群
     */
    private String groupId;

    /**
     * 最大人数
     */
    private int maxCount;

    /**
     * 该局游戏成员
     */
    private Map<String, Config.Account> accounts= new ConcurrentHashMap<>();

    /**
     * 成员分配到的词
     */
    private Map<String, String> accountWord = new ConcurrentHashMap<>();

    /**
     * 卧底id
     */
    private String wdId;

    /**
     * 已投票列表
     */
    private Map<String, String> done = new ConcurrentHashMap<>();

    /**
     * 正确词语
     */
    private String trueWord;

    /**
     * 错误词语
     */
    private String wrongWord;

    /**
     * 游戏所处流程
     */
    private GameStatus gameStatus;

    /**
     * 描述序号
     */
    private int waitInNum = -1;
}
